public class Main {

    public static void main(String[] args) {
        //static用于声明变量或方法为静态，静态的变量或方法会脱离对象，得以直接用类名调用
        //四种 public全部可以访问 protected 不同包中的无关类不能访问 default 不同包的子类以及不同包中的无关类不能访问 pirvate 同一类中可以访问
        Father f=new Son();
    }

}

class Father {
    static {
        System.out.println("父静态代码块执行");
    }
    Father(){
        {
            System.out.println("父构造代码块执行");
        }
        System.out.println("父构造方法执行");
    }
}
class Son extends Father{
    static {
        System.out.println("子静态代码块执行");
    }
    Son(){
        {
            System.out.println("子构造代码块执行");
        }
        System.out.println("子构造方法执行");
    }
}